package com.panda.mall.common.mallUser.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panda.mall.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
* 用户表
* @TableName system_user
*/
@Setter
@Getter
@TableName("system_user")
public class SystemUser extends BaseEntity implements Serializable {

    /**
    * 用户id
    */
    @NotNull(message="[用户id]不能为空")
    @ApiModelProperty("用户id")
    private Long id;
    /**
     * 用户账号
     */
    @NotBlank(message="[用户账号]不能为空")
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("用户账号")
    @Length(max= 40,message="编码长度不能超过40")
    private String account;
    /**
     * 用户密码
     */
    @NotBlank(message="[用户密码]不能为空")
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("用户密码")
    @Length(max= 255,message="编码长度不能超过255")
    private String password;
    /**
     * 用户昵称
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("用户昵称")
    @Length(max= 40,message="编码长度不能超过40")
    private String nickname;
    /**
     * 微信、QQ等识别id
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("微信、QQ等识别id")
    @Length(max= 40,message="编码长度不能超过40")
    private String openId;
    /**
     * 手机
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("手机")
    @Length(max= 40,message="编码长度不能超过40")
    private String mobile;
    /**
     * 邮箱
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("邮箱")
    @Length(max= 40,message="编码长度不能超过40")
    private String email;
    /**
     * 头像图标
     */
    @Size(max= 400,message="编码长度不能超过400")
    @ApiModelProperty("头像图标")
    @Length(max= 400,message="编码长度不能超过400")
    private String iconUrl;
    /**
     * 个性签名
     */
    @Size(max= 400,message="编码长度不能超过400")
    @ApiModelProperty("个性签名")
    @Length(max= 400,message="编码长度不能超过400")
    private String selfSign;
    /**
     * 性别(0-女，1-男）
     */
    @ApiModelProperty("性别(0-女，1-男）")
    private Integer gender;
    /**
     * 生日
     */
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
     * 城市
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("城市")
    @Length(max= 40,message="编码长度不能超过40")
    private String city;
    /**
     * 职业
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("职业")
    @Length(max= 40,message="编码长度不能超过40")
    private String job;
    /**
     * 等级id
     */
    @ApiModelProperty("等级id")
    private Long levelId;
    /**
     * 积分
     */
    @ApiModelProperty("积分")
    private Integer integral;
    /**
     * 成长值
     */
    @ApiModelProperty("成长值")
    private Integer growth;

    /**
     * 角色id
     */
    @ApiModelProperty("角色id")
    @TableField(exist = false)
    private Long roleId;

}
